/**
useState 会返回一对值：当前状态和一个让你更新它的函数，你可以在事件处理函数中或其他一些地方调用这个函数。它类似 class 组件的 this.setState，但是它不会把新的 state 和旧的 state 进行合并

useReducer也不会自动合并
*/
import React, {useState} from 'react';

export default () => {
  const [user, setUser] = useState<any>({name:'ahhh',age:11});

  console.log('render');
  return (
    <div>
      <p>{user.name}</p>
      <p>{user.age}</p>
      <button onClick={() => {
        /** emmm 如果使用typescript,其实这里会红线,我们为了演示,将useState接受的泛型置为了any*/
        setUser({name: 'ahhh2'});

        /** ↓正确的写法*/
        /*setUser({
          ...user
          ,name: 'ahh2'
        })*/
      }}>只setUser name</button>
    </div>
  )
};
